﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using LapvComponent;
using System.Configuration;
using LapvBussiness;

namespace Lapv.Account
{
    public partial class ChangeIp : System.Web.UI.Page
    {
        public int UserId = 0;
        public string domainStyle = ConfigLapv.Instance.DomainStyle;
        public string domain =ConfigLapv.Instance.DomainAdmin;
        public string _lang = "";
        protected void Page_Load(object sender, EventArgs e)
        {
            if (Request.Params["UserId"] != null)
            {
                int.TryParse(Request.Params["UserId"].Trim().Replace("'", ""), out UserId);

            }

            if (Page.IsPostBack) return;
            string curUrl = Request.RawUrl.ToString();
            ProviderAdmin.CheckAuthen(curUrl, 9);
            using (lapvEntities db = new lapvEntities())
            {
                string ips = "";

                account gm = db.accounts.Where(ec => ec.id == UserId).FirstOrDefault();

                if (gm != null)
                {
                    ips = gm.ipcanlogin;
                    lbpid.Text = gm.username;
                }

                if (ips != null)
                {
                    if (ips.Contains("*"))
                    {
                        checkboxIP.Checked = true;
                        check_ed();
                    }
                    else
                    {
                        string[] ip = ips.Split(',');
                        int i = 0;

                        foreach (var item in ip)
                        {

                            if (i == 1)
                            {
                                txtIP1.Text = item;
                            }
                            else if (i == 2)
                            {
                                txtIP2.Text = item;
                            }
                            else if (i == 2)
                            {
                                txtIP3.Text = item;
                            }
                            else if (i == 3)
                            {
                                txtIP3.Text = item;
                            }
                            else if (i == 4)
                            {
                                txtIP4.Text = item;
                            }
                            else if (i == 5)
                            {
                                txtIP5.Text = item;
                            }
                            else if (i == 6)
                            {
                                txtIP6.Text = item;
                            }
                            else if (i == 7)
                            {
                                txtIP7.Text = item;
                            }
                            else if (i == 8)
                            {
                                txtIP8.Text = item;
                            }
                            else if (i == 9)
                            {
                                txtIP9.Text = item;
                            }
                            else if (i == 10)
                            {
                                txtIP10.Text = item;
                            }
                            else if (i == 11)
                            {
                                txtIP11.Text = item;
                            }
                            else if (i == 12)
                            {
                                txtIP12.Text = item;
                            }
                            else if (i == 13)
                            {
                                txtIP13.Text = item;
                            }
                            else if (i == 14)
                            {
                                txtIP14.Text = item;
                            }
                            else if (i == 15)
                            {
                                txtIP15.Text = item;
                            }
                            i++;
                        }
                    }
                }
            }

        }
        protected void bt1_Click(object sender, EventArgs e)
        {
            if (Page.IsValid == false) return;
            int UserIdadmin = ProviderAdmin.GetUsserId();
            try
            {

                if (UserId > 0)
                {

                    using (lapvEntities db = new lapvEntities())
                    {
                        account gm = db.accounts.Where(ec => ec.id == UserId).FirstOrDefault();

                        account gm2 = db.accounts.Where(ec => ec.id == UserIdadmin).FirstOrDefault();
                        string ip = "";
                        if (checkboxIP.Checked == true)
                        {
                            ip = "*";
                        }
                        else
                        {
                            if (!string.IsNullOrEmpty(txtIP1.Text))
                            {
                                ip += "," + txtIP1.Text;
                            }
                            if (!string.IsNullOrEmpty(txtIP2.Text))
                            {
                                ip += "," + txtIP2.Text;
                            }
                            if (!string.IsNullOrEmpty(txtIP3.Text))
                            {
                                ip += "," + txtIP3.Text;
                            }
                            if (!string.IsNullOrEmpty(txtIP4.Text))
                            {
                                ip += "," + txtIP4.Text;
                            }
                            if (!string.IsNullOrEmpty(txtIP5.Text))
                            {
                                ip += "," + txtIP5.Text;
                            }
                            if (!string.IsNullOrEmpty(txtIP6.Text))
                            {
                                ip += "," + txtIP6.Text;
                            }
                            if (!string.IsNullOrEmpty(txtIP7.Text))
                            {
                                ip += "," + txtIP7.Text;
                            }
                            if (!string.IsNullOrEmpty(txtIP8.Text))
                            {
                                ip += "," + txtIP8.Text;
                            }
                            if (!string.IsNullOrEmpty(txtIP9.Text))
                            {
                                ip += "," + txtIP9.Text;
                            }
                            if (!string.IsNullOrEmpty(txtIP10.Text))
                            {
                                ip += "," + txtIP10.Text;
                            }
                            if (!string.IsNullOrEmpty(txtIP11.Text))
                            {
                                ip += "," + txtIP11.Text;
                            }
                            if (!string.IsNullOrEmpty(txtIP12.Text))
                            {
                                ip += "," + txtIP12.Text;
                            }
                            if (!string.IsNullOrEmpty(txtIP13.Text))
                            {
                                ip += "," + txtIP13.Text;
                            }
                            if (!string.IsNullOrEmpty(txtIP14.Text))
                            {
                                ip += "," + txtIP14.Text;
                            }
                            if (!string.IsNullOrEmpty(txtIP15.Text))
                            {
                                ip += "," + txtIP15.Text;
                            }
                            if (!string.IsNullOrEmpty(ip))
                            {
                                if (ip.Substring(ip.Length - 1) != ",")
                                {
                                    ip += ",";
                                }
                            }

                        }
                        string pass = Provider.GetMD5Hash(txt2pw.Text); ;
                        if (pass == gm2.password)
                        {
                            gm.ipcanlogin = ip;
                            db.ApplyCurrentValues(gm.EntityKey.EntitySetName, gm);
                            db.SaveChanges();
                            log("Đổi IP truy cập thành công. Tên tài khoản :"+gm.username+". logip= " + ip, "USER_ADMIN_SET_IP");
                            ((Lapv)this.Page.Master).MessageError = "Đổi IP thành công. logip= " + ip;
                        }
                        else
                        {
                            log("Đổi IP truy cập không thành công. Tên tài khoản:"+gm.username+". Mật khẩu sai hoặc chưa nhập!", "USER_ADMIN_SET_IP");
                            ((Lapv)this.Page.Master).MessageError = "Đổi IP không thành công. Mật khẩu sai hoặc chưa nhập";

                        }
                    }
                }
                else
                {

                }
            }
            catch (Exception ex)
            {
                ((Lapv)this.Page.Master).MessageError = "Có lỗi trong quá trình đổi ip " + ex.Message;

            }
        }
        private void log(string msg, string type)
        {
            int uid = 0;
            string uname = string.Empty;
            if (Session["UserId"] != null)
                uid = int.Parse(Session["UserId"].ToString());
            if (Session["UserName"] != null)
                uname = Session["UserName"].ToString();
            ProviderAdmin.AddLog(uid, uname, msg, string.Empty, type);
        }
        private void check_ed() {
            txtIP1.Enabled = false;
            txtIP2.Enabled = false;
            txtIP3.Enabled = false;
            txtIP4.Enabled = false;
            txtIP5.Enabled = false;
            txtIP6.Enabled = false;
            txtIP7.Enabled = false;
            txtIP8.Enabled = false;
            txtIP9.Enabled = false;
            txtIP10.Enabled = false;
            txtIP11.Enabled = false;
            txtIP12.Enabled = false;
            txtIP13.Enabled = false;
            txtIP14.Enabled = false;
            txtIP15.Enabled = false;

        }
        protected void checkboxIP_CheckedChanged(object sender, EventArgs e)
        {
            if (checkboxIP.Checked == true)
            {
                check_ed();

            }
            else
            {
                txtIP1.Enabled = true;
                txtIP2.Enabled = true;
                txtIP3.Enabled = true;
                txtIP4.Enabled = true;
                txtIP5.Enabled = true;
                txtIP6.Enabled = true;
                txtIP7.Enabled = true;
                txtIP8.Enabled = true;
                txtIP9.Enabled = true;
                txtIP10.Enabled = true;
                txtIP11.Enabled = true;
                txtIP12.Enabled = true;
                txtIP13.Enabled = true;
                txtIP14.Enabled = true;
                txtIP15.Enabled = true;

            }
        }
    }
}
